#!/usr/bin/env python

from __future__ import print_function
import socket

# TODO use dnspython to parse/check

MESSAGE=b"\xaf\x03\x00\x20\x00\x01\x00\x00\x00\x00\x00\x01\x04\x75\x6e\x69\x74\x04\x74\x65\x73\x74\x00\x00\x06\x00\x01\x00\x00\x29\x10\x00\x00\x64\x00\x00\x00\x10\x00\x0a\x00\x08\x39\x70\xad\xaf\xca\xa8\x96\xca\x00\x64\x00\x00"
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

sock.bind(("127.0.0.1",5502))
sock.sendto(MESSAGE, ("127.0.0.1", 5501))

data, addr = sock.recvfrom(512)

# make sure data is correct
EXPECT=b"\xaf\x03\x84\x00\x00\x01\x00\x00\x00\x00\x00\x01\x04\x75\x6e\x69\x74\x04\x74\x65\x73\x74\x00\x00\x06\x00\x01\x00\x00\x29\x04\xd0\x01\x00\x00\x00\x00\x00"

if (data != EXPECT):
  print("Invalid EDNS response, expected extended RCODE=BADVERS, no SOA, and OPT version 0")
else:
  print("EDNS response OK")
